home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: MegaDisc
/
MegaDisc 26 (1992)(MegaDisc Digital Publishing)(AU)[WB].zip
/
MegaDisc 26 (1992)(MegaDisc Digital Publishing)(AU)[WB].adf
/
TUTES_&_CLI
/
Star_C_Tute
/
star.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-02-08
|
872b
|
67 lines
#include <math.h>
#include <exec/memory.h>
void Free_Values(int *p)
{
int points;
points=p[0];
FreeMem(p,(points*2+2)*sizeof(int *));
return;
}
int Draw_Star(struct RastPort *rastport,int *p,int x,int y,int count)
{
int x1,y1,points,w;
if(p==NULL) return(0);
x1=x-160;
y1=y-128;
points=p[0];
count=count%points;
w=count;
Move(rastport,p[1]+x1,p[points+1]+y1);
Draw(rastport,p[1+w]+x1,p[points+1+w]+y1);
while(w)
{
w+=count;
w=w%points;
Draw(rastport,p[1+w]+x1,p[1+points+w]+y1);
}
return(1);
}
int *Init_Values(int radius,int points)
{
int n,*p;
float incr;
p=(int *)AllocMem(sizeof(int *)*(points*2+2),MEMF_PUBLIC+MEMF_CLEAR);
if(p==NULL) return(0);
p[0]=points;
incr=2.0*3.141592654/points;
for(n=1;n<=points;n++)
{
p[n]=floor(radius*cos(n*incr)+160);
p[n+points]=floor(radius*sin(n*incr)+128);
}
return((int *)p);
}